/**
 * ajax 扩展
 *     
 */
KISSY.add("extends/ajax/ajax",function(S,ajax,node){
	var $ = S.all 
	//添加属于与方法
	S.augment(ajax,{
		/**
		 *     此方法默认为异步，请求方式为POST，用户可以在otherParam重新定义，进行覆盖。
		 *     
		 *	   @param {String} url 请求路径
		 *     @param {Object} data 提交到后台的参数
		 *     @param {function} success 成功返回的回调函数
		 *     @param {Object}otherParam  本次封装设置了部分参数的默认值，如果有需要增加额外的参数，以及覆盖默认值可以利用此参数
		 *     
		 *     例如：
		 *     new ajax('../test.jsp',{a:1,b:4},fucntion(date){},{type:"GET"})
		 */
		send : function(url,data,success,otherParam){
			var cfg =  {
					url : url ,
					data : data ,
					type : "POST",
					async : true//异步
			};
			S.mix(cfg,otherParam,true); //可以覆盖前面定义的三个属性
			
			if(typeof success == "function"){
				cfg.success = success ;
			}
			cfg.complete = function(){
				try{
					$("#_ajax_loading_tips").remove();
				}catch(e){
					
				}
			}
			S.io(cfg);
		},
		/**
		 * @param id 目标对象的ID
		 * @param msg 提醒内容
		 * 
		 *  new ajax('../test.jsp',{a:1,b:4},fucntion(date){},{type:"GET"}).showMark("text-content","正在加载ing......"); 
		 */
		showMark : function(id,msg){  //添加遮罩
			var object = $("#"+id);
			var offset = object.offset();
			var message = msg || "loading........." ;
			$("<div id='_ajax_loading_tips'>"+message+"</div>")
		                                                        .appendTo("body")
		                                                        .css("position","absolute")
		                                                        .css("top",offset.top)
		                                                        .css("left",offset.left)
		                                                        .css("background-color","gray")
		                                                        .css("z-inex",999999)
		                                                        .css("width",object.width())
		                                                        .css("height",object.height());
		}
	});
	//主入口
	function ajax(url,param,success,otherParam){
		this.send(url,param,success,otherParam);
	};
	return ajax ;
},
{
    requires:["ajax","node"]  //依赖的模块
})